Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

internal/opcodesextra: curated extra instructions #345

Merged
merged 2 commits into from
Nov 28, 2022
Merged

Conversation

mmcloughlin
Copy link
Owner

@mmcloughlin mmcloughlin commented Nov 27, 2022

Updates #335

@mmcloughlin mmcloughlin marked this pull request as ready for review November 27, 2022 21:45
@codecov-commenter
Copy link

codecov-commenter commented Nov 27, 2022

Codecov Report

Merging #345 (85635e7) into master (fa3cfb0) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master     #345   +/-   ##
=======================================
  Coverage   75.95%   75.95%           
=======================================
  Files          65       65           
  Lines       20633    20633           
=======================================
  Hits        15672    15672           
  Misses       4879     4879           
  Partials       82       82           
Flag Coverage Δ
integration 11.96% <ø> (ø)
unittests 73.03% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
internal/load/tables.go 100.00% <ø> (ø)
internal/load/load.go 95.51% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@mmcloughlin mmcloughlin merged commit a0ea0f3 into master Nov 28, 2022
@mmcloughlin mmcloughlin deleted the opcodesextra branch November 28, 2022 02:32
mmcloughlin added a commit that referenced this pull request Nov 28, 2022
Adds support for the GFNI "Galois Field New Instructions" instruction set.

These instructions are not included in the Opcodes database, therefore they're
added using the "extras" mechanism introduced in #345.

For simplicity, the loading phase is updated slightly so that AVX-512 form
expansion rules are applied after extras are added to the list. This greatly
reduces the number of forms that have to be specified by hand.

Based on #343
Fixes #335

Co-authored-by: Klaus Post <klauspost@gmail.com>
mmcloughlin added a commit that referenced this pull request Jan 8, 2023
Adds "Vector Advanced Encryption Standard" instruction set.

These are added via the `opcodesextra` mechanism #345, since they're missing
from the opcodes database.

Contributed by @vsivsi. Extracted from #349 with minor tweaks.

Co-authored-by: Vaughn Iverson <vsivsi@yahoo.com>
mmcloughlin added a commit that referenced this pull request Jan 8, 2023
Adds "Vector Neural Network Instructions" instruction set.

These are added via the `opcodesextra` mechanism #345, since they're missing
from the opcodes database.

Contributed by @vsivsi. Extracted from #349 with some tweaks.

Co-authored-by: Vaughn Iverson <vsivsi@yahoo.com>
mmcloughlin added a commit that referenced this pull request Jan 10, 2023
Adds VEX and EVEX encoded versions of the `PCLMULQDQ` carry-less quadword
multiplication instruction.

These are added via the `opcodesextra` mechanism #345, since they're missing
from the opcodes database.

Contributed by @vsivsi. Extracted from #349 with minor tweaks.

Co-authored-by: Vaughn Iverson <vsivsi@yahoo.com>
mmcloughlin added a commit that referenced this pull request Jan 10, 2023
Adds the VPOPCNTDQ instruction set, providing packed population count for
double and quadword integers.

These are added via the `opcodesextra` mechanism #345, since they're missing
from the opcodes database. In this case the 512-bit non-AVX512VL forms are
added here as well as the opcodes database, but they're deduplicated later.

Contributed by @vsivsi. Extracted from #234 with simplifications for AVX-512
form expansion.

Co-authored-by: Vaughn Iverson <vsivsi@yahoo.com>
mmcloughlin added a commit that referenced this pull request Jan 11, 2023
Adds the AVX-512 Bit Algorithms instruction set.

These new instructions are added via the `opcodesextra` mechanism #345, since
they're missing from the opcodes database.

Contributed by @vsivsi. Extracted from #234 with simplifications for AVX-512
form expansion.

Co-authored-by: Vaughn Iverson <vsivsi@yahoo.com>
mmcloughlin added a commit that referenced this pull request Jan 14, 2023
Adds the "Vector Bit Manipulation Instructions 2" instruction set.

These new instructions are added via the `opcodesextra` mechanism #345, since
they're missing from the opcodes database.

Contributed by @vsivsi. Extracted from #349 with simplifications.
Specifically, as prompted by the `dupl` linter we extract some common forms
lists into a helper `forms.go` file.

Co-authored-by: Vaughn Iverson <vsivsi@yahoo.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants